Due to the proliferation of wireless networks, there are a continually increasing number of wireless devices in use today. These devices include mobile telephones, personal digital assistants (PDAs) with wireless communication capabilities, two-way pagers and the like. Concurrently with the increase of available wireless devices, software applications running on such devices have increased their utility. For example, the wireless device may include an application that retrieves a weather report for a list of desired cities or an application that allows a user to shop for groceries. These software applications take advantage of the ability to transmit data of the wireless network in order to provide timely and useful services to users, often in addition to voice communication. However, due to a plethora of different types of devices, restricted resources of some devices, and complexity of delivering large amounts of data to the devices, developing software applications remains a difficult and time-consuming task.
A wireless handheld device has limited battery power, memory and processing capacity. Since communication on a device is expensive in terms of energy consumption, it is desirable to minimize message traffic to and from the device as much as possible.
There are different approaches that provide a trade off between performance and reliability. These approaches target desktop computers. For example, desktop operating systems provide control over the frequency that cached data is saved on a non-volatile storage. Another example is when a word processing application provides an option regarding how often a document should be automatically saved by the application. Wireless devices are characterized by limited processing power and having control over performance requirements of an application is much more important than for desktop computers. There is a need for a way of improving the resource efficiency of a wireless application.